iT邦幫忙

2024 iThome 鐵人賽

DAY 22
0
Mobile Development

跨平台協同:在 React Native 和 Kotlin 應用中實現無縫交互 -以 Notification 為例系列 第 22

[Day 22] 解決 ADB 安裝應用程式時遇到的簽署錯誤 & Default FirebaseApp is not initialized 錯誤

  • 分享至 

  • xImage
  •  
  1. 重新執行 npx expo run:android,遇到應用程式的金鑰簽署錯誤。
Error: adb: failed to install /Users/minjing/development/jim/NotificationProgress/android/app/build/outputs/apk/debug/app-debug.apk: Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE: Existing package com.jim.notification signatures do not match newer version; ignoring!]
Error: /Users/minjing/Library/Android/sdk/platform-tools/adb -s 22161FDF6002B6 install -r -d --user 0 /Users/minjing/development/jim/NotificationProgress/android/app/build/outputs/apk/debug/app-debug.apk exited with non-zero code: 1
    at ChildProcess.completionListener (/Users/minjing/development/jim/NotificationProgress/node_modules/@expo/spawn-async/src/spawnAsync.ts:67:13)
    at Object.onceWrapper (node:events:634:26)
    at ChildProcess.emit (node:events:519:28)
    at maybeClose (node:internal/child_process:1105:16)
    at Socket.<anonymous> (node:internal/child_process:457:11)
    at Socket.emit (node:events:519:28)
    at Pipe.<anonymous> (node:net:339:12)
    ...
    at spawnAsync (/Users/minjing/development/jim/NotificationProgress/node_modules/@expo/spawn-async/src/spawnAsync.ts:28:21)
    at ADBServer.runAsync (/Users/minjing/development/jim/NotificationProgress/node_modules/@expo/cli/src/start/platforms/android/ADBServer.ts:85:59)
    at Object.installAsync (/Users/minjing/development/jim/NotificationProgress/node_modules/@expo/cli/src/start/platforms/android/adb.ts:217:10)
    at AndroidDeviceManager.installAppAsync (/Users/minjing/development/jim/NotificationProgress/node_modules/@expo/cli/src/start/platforms/android/AndroidDeviceManager.ts:85:5)
    at installAppAsync (/Users/minjing/development/jim/NotificationProgress/node_modules/@expo/cli/src/run/android/runAndroidAsync.ts:75:5)
    at runAndroidAsync (/Users/minjing/development/jim/NotificationProgress/node_modules/@expo/cli/src/run/android/runAndroidAsync.ts:50:3)

先使用 adb uninstall (應用程式 package name,不需加括號) 來移除實體裝置中的應用程式。

再用 npx expo run:android 重新運行即可。

  1. 在應用程式畫面的 ExponentPushToken,之前一直顯示 Default FirebaseApp is not initialized 的錯誤。一直找不到解法。

結果今天用 iTerm 開第一個 terminal 視窗,使用 npx expo start 先運行 Expo 服務。

再開第二個 terminal 視窗,
使用 adb logcat '*:S' ReactNative:D ReactNativeJS:D AndroidRuntime:E '*:E'
來過濾查看 React、JavaScript 相關的日誌。

https://ithelp.ithome.com.tw/upload/images/20241003/20151956qDkMWqK1BO.png

再到第一個 terminal 視窗,執行 a 指令來開啟 Android 應用程式。

Press a │ open Android

應用程式就成功取得 ExponentPushToken 了。

在第一個 terminal 視窗可以看到 Log 顯示了該 Token。

 LOG  ExponentPushToken[值]

上一篇
[Day 21] 重新構建 React Expo 專案
下一篇
[Day 23] 使用 React Expo API 來實作通知進度條
系列文
跨平台協同:在 React Native 和 Kotlin 應用中實現無縫交互 -以 Notification 為例30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言